package com.fulin.sycnLife;

/**
 * 用join来实现主线程等待所有的线程执行完成之后做某件事
 * 
 * @author fulin16
 *
 */
public class JoinCountDownLatchTest {
	public static void main(String[] args) throws InterruptedException {
		Thread parser1 = new Thread(new Runnable(){

			@Override
			public void run() {
				//线程一进行解析操作
			}
			
		});
		
		Thread parser2 = new Thread(new Runnable(){

			@Override
			public void run() {
				//线程二进行解析操作
			}
			
		});
		
		parser1.start();
		parser2.start();
		/**
		 * join用于让当前执行线程等待join线程执行结束.其实现原理是不停检查join线程释放存活，
		 * 如果join线程存活则让当前线程永远等待。其中wait(0)表示永远等待下去
		 * 
		 * 如代码：
		 * while(isAlive()){
		 * 	wait(0);
		 * }
		 */
		parser1.join();
		parser2.join();
		System.out.println("all parser finish");
	}
}
